// pages/notice/notice.js
import http from '../../utils/http'
var listTimer = null;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    totalPage: 0, // 总页数
    totalSize: 0, // 总条数
    pageNo: 1, // 当前页数
    pageSize: 10, // 每页条数
    loadMore: false, // 是否显示加载更多，无更多数据会显示 已经到底
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({
      list: [],
      totalPage: 0, // 总页数
      totalSize: 0, // 总条数
      pageNo: 1, // 当前页数
      pageSize: 10, // 每页条数
    })
    this.getNoticeList()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    wx.showNavigationBarLoading()
    this.setData({
      list: [],
      totalPage: 0, // 总页数
      totalSize: 0, // 总条数
      pageNo: 1, // 当前页数
      pageSize: 10, // 每页条数
    })
    // 列表分页，正常查询
    wx.showLoading({
      title: '正在加载',
      mask: true
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    let pageNo = this.data.pageNo
    let totalPage = this.data.totalPage
    pageNo++
    // 当前页大于总页数时停止
    if (pageNo > totalPage) {
      this.setData({
        loadMore: false,
        pageNo: totalPage
      })
      if (listTimer) {
        clearTimeout(listTimer)
      }
    }
    // 正常累加分页
    else {
      this.setData({
        loadMore: true,
        pageNo: pageNo
      })
      if (listTimer) {
        clearTimeout(listTimer)
      }
      listTimer = setTimeout(() => {
        this.getNoticeList()
      }, 300)
    }
  },

  getNoticeList() {
    wx.showLoading({
      title: '正在加载',
      mask: true
    })
    http.post('/api/store/v1/platform/notice/list', {
      page: this.data.pageNo,
      pageSize: this.data.pageSize
    }).then(res => {
      wx.hideLoading()
      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh()
      if (res.code === 200) {
        // 计算分页
       let totalSize = res.data.total_count
       let totalPage = 0
       if (totalSize > 0) {
         totalPage = Number(Math.ceil(totalSize / this.data.pageSize))
       }
       this.setData({
         list: this.data.list.concat(res.data.data),
         totalSize: totalSize,
         totalPage: totalPage,
         loadMore: false
       })
      }
    })
  },

  toDetail(e) {
    wx.navigateTo({
      url: '/pages/notice/noticeDetail/noticeDetail?id=' + e.currentTarget.dataset.id
    })
  }
})